/*

cimahis - Software para el analisis de imagenes de corte histologico

Copyright (C) Andrés De Abreu 2010 <jadabreu @ gmail . com>


Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los términos
de la Licencia Pública General de GNU según es publicada por la Free Software Foundation,
bien de la versión 2 de dicha Licencia o bien (según su elección) de cualquier versión
posterior.

Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA,
incluso sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN
PROPÓSITO PARTICULAR. Véase la Licencia Pública General de GNU para más detalles.

Debería haber recibido una copia de la Licencia Pública General junto con este programa.
Si no ha sido así, escriba a la Free Software Foundation, Inc.,
en 675 Mass Ave, Cambridge, MA 02139, EEUU.

    //ACERCA DE ventanaUmbral.h
    *
    * Declaración de la clase ventanaUmbral la cual se encarga de construir la interfaz
    * grafica para la selección del umbral para la segmentación por umbral
    *

*/


#ifndef VENTANAUMBRAL_H
#define VENTANAUMBRAL_H

#include <QMainWindow>
#include "QLabel"
#include "color/UmbralHistogramas/lienzoHistograma.h"
#include "imagen.h"
#include "color/fabricaObjetos.h"
#include "interfazSistema/interfazSistema.h"
#include "interfazUsuario/areaImagen.h"

namespace Ui {
    class VentanaUmbral;
}

class VentanaUmbral : public QMainWindow {
    Q_OBJECT
public:
    VentanaUmbral(QWidget *parent = 0);
    ~VentanaUmbral();
    void fijarUmbralOptimo(int valor); //fijar el umbral indicado por "valor"
    void cargarDatos(IplImage * a);  //cargar la imagen que se desea segmentar
    void obtenerArea(areaImagen *a);  //cargar el areaImagen a donde sera enviada la imagen segmentada




protected:
    void changeEvent(QEvent *e);



private:
    Ui::VentanaUmbral *ui;
    int valorUmbral,valorUmbralOptimo;
    lienzoHistograma *lienzo;
    IplImage * imagenOriginal,*imagenSegmentada;
    QImage *imagenInterfaz;
    areaImagen *area;
    bool tinte;



private slots:
    void on_horizontalSlider_valueChanged(int value); //acción que se dispara cuando se mueve la barra de  desplazamiento de la interfaz
    void setUmbral(); //fijar un umbral
    void segmentarHistograma(); //aplicar algoritmo de segmentación
    void cerrarVentana();  //cerrar la ventana de selección de umbral

};

#endif // VENTANAUMBRAL_H
